﻿using EkStudio.com.bean.xml.reflection;
using EkStudio.com.bean.xml.RootInterface;
using EkStudio.com.bean.xml.Unit;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace EkStudio.com.bean.xml.WorkFlow
{
    /// <summary>
    /// 工作流基础设置
    /// </summary>
    public class WflowModuleRoot :BillObjectInterface
    {
        private string key = "";
        private string caption = "";
        private string languageTexts = "";
        private string rootVersion = BeanUtil.VERSION;
        private string javaPackage = "";


        private WflowFieldElement flowField = null;
        private WflowLimitElement flowLimit = null;
        private WflowOwnerElement ownerProperties = null;

        [Xml]
        public string Caption
        {
            get
            {
                return caption;
            }

            set
            {
                caption = value;
            }
        }
        [Xml]
        public string Key
        {
            get
            {
                return key;
            }

            set
            {
                key = value;
            }
        }
        [Xml]
        public string LanguageTexts
        {
            get
            {
                return languageTexts;
            }

            set
            {
                languageTexts = value;
            }
        }
        [Xml]
        public string RootVersion
        {
            get
            {
                return rootVersion;
            }

            set
            {
                rootVersion = value;
            }
        }
        [Xml("package")]
        public string JavaPackage
        {
            get
            {
                return javaPackage;
            }

            set
            {
                javaPackage = value;
            }
        }
        [XmlTransient]
        public object ParentBean
        {
            get
            {
                return null;
            }

            set
            {
                
            }
        }
        [XmlElement]
        public WflowFieldElement FlowField
        {
            get
            {
                return flowField;
            }

            set
            {
                flowField = value;
            }
        }
        [XmlElement]
        public WflowLimitElement FlowLimit
        {
            get
            {
                return flowLimit;
            }

            set
            {
                flowLimit = value;
            }
        }
        [XmlElement]
        public WflowOwnerElement OwnerProperties
        {
            get
            {
                return ownerProperties;
            }

            set
            {
                ownerProperties = value;
            }
        }

        public object Clone()
        {
            WflowModuleRoot clone = new WflowModuleRoot();
            clone.Key = key;
            clone.Caption = caption;
            clone.languageTexts = "";
            clone.rootVersion = rootVersion;
            clone.javaPackage = "";
            return clone;
        }

        //private string key = "";
        //private string caption = "";
        //private string languageTexts = "";
        //private string rootVersion = BeanUnit.version;
        //private string javaPackage = "";
    }

}
